package com.youshuit.designmodedemo.controller;

/**
 * @author zhongzm
 * @date 2025-11-04 10:37
 * 单例模式--懒汉式，线程安全
 */
public class SingletonPattern {

    private static SingletonPattern singleton = null;

    private SingletonPattern(){}

    /**
     * 详细步骤：1.客户端请求获取单例实例
     *         2.检查实例是否已经存在
     * 		3.如果存在，直接返回现有实例
     * 		4.如果不存在，创建新实例
     * 		5.保存实例引用供后续使用
     * 		6.返回新创建的实例
     * 关键点： 整个应用生命周期中只有一个实例
     * 	    需要处理多线程环境下的线程安全
     * 	    枚举实现是最安全的方式
     * @return
     */
    private static synchronized SingletonPattern getInstance() {
        if (null == singleton){
            return new SingletonPattern();
        }
        return singleton;
    }
}
